﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
///librerías que uso
using Librerias;
using System.Data;

namespace eCampusWeb
{
    public partial class AsignaturaNoticias : System.Web.UI.Page
    {
        #region Variables Formulario AsignaturaNoticias
        ENNoticias noticiaAndroide;
        ENUsuario usu = new ENUsuario();
        String usuCorreo = null;
        String asigCodigo = "";
        DataTable dtNoticias = null, dtUsus;
        DataView dv = null;
        Boolean privada = false;
        ListView lvNoticias = null;
        int eltipo;
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            noticiaAndroide = new ENNoticias();
            try
            {      
                if ((asigCodigo = Request.QueryString["codigo"]) != null)
                {
                    lbSaludoAsignatura.Text = new ENAsignatura().dameNombreAsig(asigCodigo);
                    hyVolver.NavigateUrl = "~/AsignaturaMuro.aspx?codigo=" + asigCodigo;
                    dtNoticias = noticiaAndroide.dimeNoticiasSegunUnaAsignaturaOrderByDataDESCConPuntos(asigCodigo);
                    if (dtNoticias.Rows.Count > 0)
                    {
                        if ((usuCorreo = Session["correo"].ToString()).Equals(""))
                        {
                            privada = false;                            
                        }
                        else
                        {
                            eltipo = Int32.Parse(Session["tipo"].ToString());
                            privada = true;
                            // 1 prof, 2 alumno
                            dtUsus = usu.ConsultarUsuariosPorTipoUsuYAsignatura(asigCodigo, eltipo);
                            if (!hayRelacionUsuarioAsig())
                            {
                                privada = false;
                            }                    
                        }

                        if (privada)
                        {
                            lvNoticias = lvNoticiasPrivado;
                            lvNoticias.DataSource = dtNoticias;
                        }
                        else
                        {
                            lvNoticias = lvNoticiasPublico;
                            dv = new DataView(dtNoticias);
                            dv.RowFilter = "notVisibilidad = 1";
                            lvNoticias.DataSource = dv;                            
                        }
                        lvNoticias.DataBind();
                    }
                    else
                    {
                       
                    }
                }
            }
            catch (Exception)
            {

            }
        }
        // Determina si el usuario imparte o está matriculado en la asignatura
        public Boolean hayRelacionUsuarioAsig()
        {
            Boolean hay = false;
            foreach (DataRow ro in dtUsus.Rows)
            {
                if (ro["usuCorreo"].ToString().Equals(usuCorreo))
                {
                    hay = true;
                    break;
                }
            }
            return hay;
        }

        public void MasUno(object sender, EventArgs e)
        {
            try
            {
                string id = ((ImageButton)sender).CommandArgument;

                new Librerias.EN.ENPuntos().MasUno("N" + id, Session["correo"].ToString());


                //Carga muro
                lvNoticias.DataSource = new ENNoticias().dimeTodasNoticiasOrderByDataDESCConPuntos();
                lvNoticias.DataBind();
            }
            catch (Exception)
            {
                lbAviso.Text = "ERROR: No puedes votar dos veces el mismo comentario. ";
            }
        }

        public void MenosUno(object sender, EventArgs e)
        {
            try
            {
                string id = ((ImageButton)sender).CommandArgument;

                new Librerias.EN.ENPuntos().MenosUno("N" + id, Session["correo"].ToString());


                //Carga muro
                lvNoticias.DataSource = new ENNoticias().dimeTodasNoticiasOrderByDataDESCConPuntos();
                lvNoticias.DataBind();
            }
            catch (Exception)
            {
                lbAviso.Text = "ERROR: No puedes votar dos veces el mismo comentario. ";
            }
        }
    }
}